1. Technical Field
This invention relates generally to version management in source control tools, and more particularly to a file rename matching tool usable in any Configuration Management (CM) environment.
2. Description of Related Art
Configuration management is the detailed recording and updating of information that describes a computer systems and networks, including all hardware and software components. Such information typically includes the versions and updates that have been applied to installed software packages and the locations and network addresses of hardware devices.
Configuration management is also used in software development. Writing computer programs is often a lengthy process involving multiple users who have access to edit the same source code document. One of the most common ways to manage source code developed in a software project is by using a source control tool of a CM environment. A source control tool prevents developers from overwriting each others code and gives the developers the ability to maintain and manage source code files within a given project.
Typical source control methods use a system of checking files in and out, somewhat akin to a library system. If a file is checked out, then no one else should be able to use or edit that file, until it is checked back in. Similarly, if no one has the file checked out, then no one should be able to edit it. Note, however, that anyone may still view the file at any time. This process ensures that no two people will ever edit the file at the same time. Also, by making sure that everyone checks files out properly through the application, no one's changes will ever be overwritten—unless it was on purpose. In a web application setting, one would normally store all files on a central server, though the files can be stored anywhere accessible by users. Each user would then download the file to his or her local computer, edit it, and upload it back to the server. There may also be a person working directly on the server as well. When the user downloads the file, they must check it out as well, and the reverse also applies when they upload the file.
The versioning feature incorporated into source control tools permits numbering of the source files placed into the tool repository, which allows the source files to be tracked upon creation of the files into the source control tool repository and any updates to the files thereafter. When a source code file has been updated or altered, a separate versioned file or the difference between the file and its previous version is created and can be tracked separately from the original source code file.
Though this method is widely used, it suffers from some drawbacks. For example, there is no mechanism in existing source control tools that links the original source file to a version of the file that has been renamed. This leads to an information tracking disconnect, as information about the original source file cannot be retrieved unless both the original and renamed versions of the file are known. Requesting information on the original source code file name does not return the new filename changes, and requests for the new file name do not return the previous (differently named) versions.
Therefore, there is a need in the art for a configuration management tool that allows a user to track changes between files, even when different versions of the file have been renamed.